A frequently neglected aspect of the modern enterprise data storage is sensitive user information security. The most widespread approach used today is encryption of such user information as Social Security number, credit card numbers, e-mails, etc. with a single key and storage of the resulting encrypted data in the database. The logic behind such solution is that a malicious individual who gains access to the database will be unable to make use of the user's sensitive data because it is encrypted.
Unfortunately, this approach provides a false sense of security in most cases. The problem is that the encryption key used to encrypt all records still needs to be stored-somewhere in the system. For example, as soon as the system is required to send e-mail to the user or submit user's credit card number to the merchant account, the server(s) responsible for fulfilling that requirement must use the key to decrypt user information retrieved from the database. Chances are that if a malicious individual manages to get access to the database, which is usually the most protected part of the system, he will then be able to gain access to the aforementioned server. As soon as this happens, such malicious individual will be able to obtain the key and decrypt every database record encrypted with this key.